An operating system (OS) image interacts with hardware in a computer to perform a multitude of functions. A typical OS image requires a significant amount of space on a mass storage device such as a hard disk drive. The significant disk space requirement renders the typical OS image inefficient for situations where only limited functionality is required of the OS image. In addition, the significant disk space requirement and the need for read-write access to the mass storage device prevent the typical OS image from residing on a single read-only, computer readable medium.
To install an OS image on the computer, another OS image with minimal functionality such as MS-DOS that can boot the computer from read-only media has historically been used. However, MS-DOS has several limitations including a 640-kilobyte volatile memory limit and incompatibility with 64-bit computers. Further, during booting and installation of the OS image using MS-DOS, multiple re-boots of the computer are often necessary. In addition, software routines for operating the hardware (known as hardware drivers that are provided by manufacturers of the hardware) must be modified to work within the constraints of MS-DOS to validate the hardware using MS-DOS.
Similarly, some versions of the WINDOWS NT operating system (NT), for example, are installed through a textmode setup that prepares the computer for an initial boot into NT. A graphical user interface mode setup configures the installation based on input from the user. Referred to as on-line installation, this method of installation includes bootstrapping NT itself on the computer. However, on-line installation requires an undesirable number of re-boots of the computer.
Most OS images include a kernel containing software routines for performing the basic, required functions of the OS. Additional functionality is implemented by software outside the kernel. Some OS images include a microkernel that has minimal functionality and size. In such microkernel OS images, the software outside the kernel performs a significant amount of the functionality required of the OS image. However, these microkernel OS images are generally hardware dependent and do not include a text-based script customizable by the user to perform specific functions desired by the user.
The invention described below addresses these and other disadvantages.